package com.yfqy.app.modules.order.service;

import com.yfqy.app.domain.vo.ResultVO;
import com.yfqy.app.modules.order.dto.RefundApplyRequest;

public interface OrderRefundService {

    /**
     * 1、主订单状态满足申请退款条件
     * 2、商品订单不能重复退款
     * 3、商品订单正在退款不能重复退款
     * 4、判断是否全退
     * 5、添加退款记录
     * 6、修改主订单为APPLY_REFUND
     * 7、修改商品订单为退款中
     *
     * @param request
     */
    ResultVO<Void> applyAfterSales(RefundApplyRequest request);

    /**
     * 用户取消售后申请
     * 1、验证售后状态
     * 2、修改售后状态
     * 3、修改订单状态
     * 4、修改商品订单状态
     *
     * @param refundId
     */
    ResultVO<Void> cancelRefund(Long refundId);

}
